#include <iostream>
using namespace std;

int sumv = 0;       //最终的异或和

template <class T>
void permutations(T list[],int k,int m) {//list为输入序列，k为未排序的首元素位置，m为序列长度
    if (k==m) {
        int v=0;        //单个排序的价值
        for (int i=0;i<=m;i++) {
            v+=((i+1)^list[i]);
        }
        sumv=sumv|v;        //更新所有排列的价值
    }
    else for (int i=k;i<=m;i++) {       //将未排序部分的首元素与未排序部分的剩余元素依次交换
        swap(list[k],list[i]);
        permutations(list,k+1,m);
        swap(list[k],list[i]);
    }
}

int main() {
    int n;
    cin >> n;
    int* a = new int[n];
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    permutations(a,0,n-1);
    cout << sumv;
    delete []a;
    return 0;
}